/*
    db数据操作
 */
var MongoClient = require('mongodb').MongoClient;
var mongoUrl = 'mongodb://localhost:27017/test';//连接数据库地址
var ObjectID = require('mongodb').ObjectID;

function _connect(callback){
    MongoClient.connect(mongoUrl,function(err,db) {
        if (err) {
            console.log('数据库连接失败');
            return ;
        }
        //增加 修改 删除

        callback(db);
    })
}

//暴露 ObjectID
exports.ObjectID = ObjectID;
//参数1:表名  参数2:条件  参数3:回调函数
//数据库查找
exports.find=function(collectionname,json,callback){
    _connect(function(db){
        var result = db.collection(collectionname).find(json);
        result.toArray(function(error,data){
            callback(error,data);//拿到数据执行回调函数
            //关闭数据库
            db.close();
        })
    })
}

//增加数据
exports.insert=function(collectionname,json,callback){
    _connect(function(db){
        db.collection(collectionname).insertOne(json,function(error,data){
            callback(error,data);//拿到数据执行回调函数
            //关闭数据库
            db.close();
        })
    })
}

//修改数据
exports.update=function(collectionname,json1,json2,callback){
    _connect(function(db){
        db.collection(collectionname).updateOne(json1,{$set:json2},function(error,data){
            callback(error,data);//拿到数据执行回调函数
            //关闭数据库
            db.close();
        })
    })
}

//删除数据
exports.delete=function(collectionname,json,callback){
    _connect(function(db){
        db.collection(collectionname).deleteOne(json,function(error,data){
            callback(error,data);//拿到数据执行回调函数
            //关闭数据库
            db.close();
        })
    })
}